<?php
    /*
Autor: Jonathan Vindas Abarca
Fecha: 23/08/2012
Descripción: Este archivo contiene la declaración de funciones para obtener datos de la tabla de guias de 
la base de datos SQL Server.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/

    /*Funcion para agregar Guia*/
    function agregarGuia($CodGuia,$BodegaRemitente,$BodegaDestino,$Via,$FechaEnvio,$MonPagar,$nombreLocalidad)
    {                  
        require_once 'dataModelo.php';
        $conexion=conexion();        
        $insert="exec SP001AgregarGuia '$CodGuia','$BodegaRemitente','$BodegaDestino','$Via','$FechaEnvio','$MonPagar','$nombreLocalidad'";
        /*
        $insert="INSERT INTO dbo.Guias
          ( 
            CodGuia			,
            BodegaRemitente ,
            BodegaDestino   ,
            Via             ,
            FechaEnvio      ,
            MonPagar,                       
            nombreBodegaRemitente                
          ) 
     VALUES 
          ( 
			   '$CodGuia', 
			   '$BodegaRemitente', 
			   '$BodegaDestino'    ,
			 '$Via'				 ,
			   '$FechaEnvio', 
			   '$MonPagar',
                           '$nombreLocalidad'
		  )";        */
        if (!odbc_exec($conexion,$insert))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
    
    /*Actiualizamos solo la fecha y transportista*/
    function modificarParcialmenteGuia($CodGuia,$Via,$FechaEnvio)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        $update="DISABLE TRIGGER axplus.TRI003_Guias_UP ON Guias;
        update Guias set  Via='$Via', FechaEnvio='$FechaEnvio' 
        where CodGuia='$CodGuia'  
        ;
        ENABLE TRIGGER axplus.TRI003_Guias_UP ON Guias;    ";
        //$update="update Guias set BodegaRemitente='$BodegaRemitente', BodegaDestino='$BodegaDestino',Via='$Via',FechaEnvio='$FechaEnvio',MonPagar='$MonPagar',nombreBodegaRemitente ='$nombreBodegaRemitente' where CodGuia='$CodGuia'";
       if (!odbc_exec($conexion,$update))
       {
            die('Error: ' . odbc_error());
       }
       odbc_close($conexion);
    }
    
    /*Funcion para modificar Guia*/
    function modificarGuia($CodGuia,$BodegaRemitente,$BodegaDestino,$Via,$FechaEnvio,$MonPagar,$nombreBodegaRemitente )
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        $update="exec SP002ModificarGuia '$CodGuia','$BodegaRemitente','$BodegaDestino','$Via','$FechaEnvio','$MonPagar','$nombreBodegaRemitente'";
        //$update="update Guias set BodegaRemitente='$BodegaRemitente', BodegaDestino='$BodegaDestino',Via='$Via',FechaEnvio='$FechaEnvio',MonPagar='$MonPagar',nombreBodegaRemitente ='$nombreBodegaRemitente' where CodGuia='$CodGuia'";
       if (!odbc_exec($conexion,$update))
       {
            die('Error: ' . odbc_error());
       }
       odbc_close($conexion);
    }

    /*Función para Eliminar Guia*/
    function eliminarGuiaControlador($CodigoGuia)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();        
        //$delete="delete from Guias where CodGuia ='$CodigoGuia';";
        $delete="exec SP003EliminarGuiaControlador '$CodigoGuia'";
        if (!odbc_exec($conexion,$delete))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
    
    /*Función para Buscar Todos los Guia*/    
    function buscarTodosLosGuia()
    {
        require_once 'dataModelo.php';
        $conexion=conexion();               
        $select="exec SP004BuscarTodosLosGuias";
        /*$rs = odbc_exec($conexion, "  SELECT 
                                        gui.CodGuia as CodGuia,
                                        gui.BodegaRemitente as BodegaRemitente,
                                        gui.BodegaDestino as BodegaDestino,
                                        gui.Via as Via,
                                        trans.Via as DescripVia,
                                        gui.FechaEnvio as FechaEnvio,
                                        gui.MonPagar as MonPagar 
                                    FROM Guias gui
                                inner join Transportistas trans
                                    on gui.Via=trans.CodTransportista");*/
        $rs = odbc_exec($conexion,$select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {
            $fechaEnvio=date_parse(odbc_result($rs,"fechaEnvio"));
            $item['CodGuia']=odbc_result($rs,"codGuia");
            $item['BodegaRemitente']=odbc_result($rs,"bodegaRemitente");
            $item['BodegaDestino']=odbc_result($rs,"bodegaDestino");
            $item['Via']=odbc_result($rs,"via");
            $item['DescripVia']=odbc_result($rs,"DescripVia");
            $item['FechaEnvio']=  $fechaEnvio['day'].'/'.$fechaEnvio['month'].'/'.$fechaEnvio['year'] ;
            $item['MonPagar']=odbc_result($rs,"monPagar");
            $item['CodigoGuiaSegunDivision']=odbc_result($rs,"CodigoGuiaSegunDivision");
            $item['nombreBodegaRemitente']=odbc_result($rs,"nombreBodegaRemitente");
            
            $item['descriptionBodegaRemitente']=odbc_result($rs,"descriptionBodegaRemitente");
            $item['descripcionBodegaDestino']=odbc_result($rs,"descripcionBodegaDestino");
            
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }
    
    /*Función para Buscar Todos Codigos Guias*/
    function buscarTodosCodigosGuia()
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();        
        $select="exec SP005BuscarTodosCodigosGuia";
        //$rs = odbc_exec($conexion, "SELECT codguia, bodegaremitente, bodegadestino, via, fechaenvio, monpagar, nombrebodegaremitente FROM Guias");
        $rs = odbc_exec($conexion,$select);
        $items=Array();
        while (odbc_fetch_row($rs)){
            $fechaEnvio=date_parse(odbc_result($rs,"fechaEnvio"));
            $item['CodGuia']=odbc_result($rs,"codGuia");
            $item['BodegaRemitente']=odbc_result($rs,"bodegaRemitente");
            $item['BodegaDestino']=odbc_result($rs,"bodegaDestino");
            $item['Via']=odbc_result($rs,"via");
            $item['FechaEnvio']=  $fechaEnvio['day'].'/'.$fechaEnvio['month'].'/'.$fechaEnvio['year'] ;
            $item['MonPagar']=odbc_result($rs,"monPagar");
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }
    
    /*Función para Buscar Todos Codigos Transportistas*/
    function buscarTodosCodigoVias()
    {
        require_once 'dataModelo.php';
        $conexion=conexion();        
        $select="exec SP006BuscarTodosCodigoVias";
        //$rs = odbc_exec($conexion, "select CodTransportista,Via from Transportistas");
        $rs = odbc_exec($conexion,$select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {
            $item['CodTransportista']=odbc_result($rs,"CodTransportista");
            $item['Via']=odbc_result($rs,"Via");
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }
    
    /*Funcion para para obtener el codigo siguiente de las guias*/
    function buscarCodSigGuias()
    {
        require_once 'dataModelo.php';
        $conexion=conexion();        
        $rs = odbc_exec($conexion, "select dbo.FUN002SigCodGuia() as CodGuiaSig");
        $items=Array();        
        while (odbc_fetch_row($rs))
        {
            $item['CodGuiaSig']=odbc_result($rs,"CodGuiaSig");                
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }


    /*Función para Buscar Guias por codigo*/
    function encontrarGuia($codigo)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();       
        $existe=false;
        $pcodig='';                       
        $rs = odbc_exec($conexion,"SELECT * FROM dbo.FUN001GuiasXCodGuia('".$codigo."')");       
        $items=Array();
        if (!$conexion) 
        {        
           exit( "Error al conectar: " . $conexion);
        }
        while (odbc_fetch_row($rs))
        {
            $pcodig=odbc_result($rs,"CodGuia");         
        }
        odbc_close($conexion);
        return $pcodig;        
    }       
    
    /*Funcion para buscar una guia por su codigo*/
    function buscarGuiaPorCodigo($codigoGuia)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();       
        $select="exec SP008BuscarGuiaPorCodigo '$codigoGuia'";
        $rs = odbc_exec($conexion,$select);
        //$rs = odbc_exec($conexion, "select CodGuia, BodegaRemitente ,BodegaDestino, Via from Guias where CodGuia='".$codigoGuia."'");
        $items=Array();
        while (odbc_fetch_row($rs))
        {                
            $item['codigoGuia']=odbc_result($rs,"CodGuia");
            $item['codigoVia']=odbc_result($rs,"Via");
            $item['codigoBodegaDestino']=odbc_result($rs,"BodegaDestino");                
            $item['codigoBodegaRemitente']=odbc_result($rs,"BodegaRemitente");                
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }
    
    /*Funcion para encontrar bodega remitente de la guia*/
    function buscarLocalidadGuia($codigoGuia)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();        
        $select="exec SP009BuscarLocalidadGuia '$codigoGuia'";        
        $rs = odbc_exec($conexion,$select);
        //$rs = odbc_exec($conexion, "select BodegaRemitente from guias where CodGuia='$codigoGuia'");        
        $localidad="";           
        while (odbc_fetch_row($rs))
        {                
            //$item['localidad']=odbc_result($rs,"BodegaRemitente");                
            $localidad=odbc_result($rs,"BodegaRemitente");                                             
        }
        odbc_close($conexion);
        return $localidad;
    }
    
    /*Funcion para obtener el transportista y bodega destino de la guia*/
    function obtenerGuia($codigoGuia)
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();
        $select ="exec SP010ObtenerGuia '$codigoGuia'";
        //$rs = odbc_exec($conexion, "select g.BodegaDestino,g.Via from Guias g
        //where g.CodGuia='".$codigoGuia."'");
        $rs = odbc_exec($conexion,$select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {
            $item['BodegaDestino']=odbc_result($rs,"BodegaDestino");
            $item['Via']=odbc_result($rs,"Via");                
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }
    
    /*Funcion para buscar lineas dependiente de la guia*/
    function encontrarDependenciaLineasConGuia($codigoGuia)
    {              
        require_once 'dataModelo.php';
        $conexion=conexion();       
        $select="exec SP011EncontrarDependenciaLineasConGuia '$codigoGuia'";
        //$rs = odbc_exec($conexion, "select codguia,embalaje from lineas where CodGuia='".$codigoGuia."'");       
        $rs = odbc_exec($conexion,$select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {                
            $item['codguia']=odbc_result($rs,"codguia");
            $item['embalaje']=odbc_result($rs,"embalaje");                
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;       
    }
    
    /*Funcion para encontrar encontrar si la guia tiene lineas asociadas retrna falso si no tiene lineas asociadas
      o verdadero si tiene lineas asociadas*/    
    function encontrarGuiaConDependencia($codigoGuia)
    {
        require_once 'dataModelo.php';
        $existe=false;
        $conexion=conexion();
        $select="exec SP012EncontrarGuiaConDependencia '$codigoGuia'";
        //$rs = odbc_exec($conexion,  "select CodGuia from lineas where CodGuia='".$codigoGuia."'");          
        $rs = odbc_exec($conexion,  $select);          
        if (!$conexion) 
        {           
           exit( "Error al conectar: " . $conexion);
        }
        else
        {
            $existe=odbc_fetch_row($rs);                
        }        
        odbc_close($conexion);
        return $existe;
    }
    
    /*Funcion para buscar el codigoGuiaSeguDivision segun el numero de orden de la guia de envio*/
    function buscarGuiasAsociadasNumeroOrden($codigoOrden)
    {
        require_once 'dataModelo.php';    
        $conexion=conexion();
        //$select="exec SP008ObtenerCantidadOrdenSeleccionada '$codigoOrden', '$codigoArticulo'";
        $rs = odbc_exec($conexion, "select DISTINCT g.CodigoGuiaSegunDivision from lineadetalles li
        inner join guias g
        on g.CodGuia=li.CodGuia        
        where li.NumOrden like '%$codigoOrden%'");
        //$rs = odbc_exec($conexion, $select);
        $guias=Array();
        while (odbc_fetch_row($rs))
        {
            $guia['CodigoGuiaSegunDivision']=odbc_result($rs,"CodigoGuiaSegunDivision");        
            array_push($guias,$guia);
        }        
        odbc_close($conexion);
        return $guias;
    }
?>
